Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 vector-feature-night-mode-enabled skin-theme-clientpref-os vector-sticky-header-enabled" lang="fr" dir="ltr"><head>
<meta charset="UTF-8">
<title>Hypertext Transfer Protocol</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Hypertext_Transfer_Protocol rootpage-Hypertext_Transfer_Protocol skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><i><span lang="en">Hypertext Transfer Protocol</span></i></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="fr" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="fr" dir="ltr"><p class="mw-empty-elt">
</p>
<p id="sous_titre_h1" class="noexcerpt">HTTP</p>

<div class="infobox_v3 infobox infobox--frwiki noarchive">
<div class="entete icon communication" style="background-color: #DFEDFF;"><style data-mw-deduplicate="TemplateStyles:r228712581">
/* start https://fr.wikipedia.org/ */


.mw-parser-output .entete.communication{background-image:url("./_mw_/Picto_infobox_antenna.png")}


/* end https://fr.wikipedia.org/ */
</style>
<div>Hypertext Transfer Protocol</div>
</div>
<div class="images">
</div>
<div class="legend">Début d'une <a href="Adresse_web" class="mw-redirect" title="Adresse web">adresse web</a> HTTP dans la <a href="Barre_d'adresse" title="Barre d'adresse">barre d'adresse</a> d'un <a href="Navigateur_web" title="Navigateur web">navigateur web</a>.</div>
<div class="hr" style="background-color:#DFEDFF; height:2px;"></div>
<table><caption style="">Informations</caption>

<tbody><tr>
<th scope="row"> Fonction
</th>
<td>
Transmission d'<a href="Hypertexte" title="Hypertexte">hypertexte</a></td>
</tr>

<tr>
<th scope="row"> <a href="Sigle" title="Sigle">Sigle</a>
</th>
<td>
HTTP</td>
</tr>

<tr>
<th scope="row"> Date de création
</th>
<td>
<a href="1990_en_informatique" title="1990 en informatique">1990</a></td>
</tr>

<tr>
<th scope="row"> Auteur(s) / Autrice(s)
</th>
<td>
<a href="Tim_Berners-Lee" title="Tim Berners-Lee">Tim Berners-Lee</a></td>
</tr>

<tr>
<th scope="row"> <a href="Port_(logiciel)" title="Port (logiciel)">Port</a>
</th>
<td>
80</td>
</tr>

<tr>
<th scope="row"> <a href="Request_for_comments" title="Request for comments">RFC</a>
</th>
<td>
<a href="1996_en_informatique" title="1996 en informatique">1996</a>&nbsp;: <a href="https://datatracker.ietf.org/doc/html/rfc1945" class="extiw external" title="rfc:1945">RFC 1945</a><br><a href="1997_en_informatique" title="1997 en informatique">1997</a>&nbsp;: <a href="https://datatracker.ietf.org/doc/html/rfc2068" class="extiw external" title="rfc:2068">RFC 2068</a><br><a href="1999_en_informatique" title="1999 en informatique">1999</a>&nbsp;: <a href="https://datatracker.ietf.org/doc/html/rfc2616" class="extiw external" title="rfc:2616">RFC 2616</a><br><a href="2014_en_informatique" title="2014 en informatique">2014</a>&nbsp;: <a href="https://datatracker.ietf.org/doc/html/rfc7230" class="extiw external" title="rfc:7230">RFC 7230</a> à <a href="https://datatracker.ietf.org/doc/html/rfc7237" class="extiw external" title="rfc:7237">7237</a><br><a href="2015_en_informatique" title="2015 en informatique">2015</a>&nbsp;: <a href="https://datatracker.ietf.org/doc/html/rfc7540" class="extiw external" title="rfc:7540">RFC 7540</a></td>
</tr>

</tbody></table>
</div>
<p>L’<i><b><span class="lang-en" lang="en">Hypertext Transfer Protocol</span></b></i>, généralement abrégé <b>HTTP</b>, littéralement «&nbsp;protocole de transfert <a href="Hypertexte" title="Hypertexte">hypertexte</a>&nbsp;», est un <a href="Protocole_de_communication" title="Protocole de communication">protocole de communication</a> <a href="Client-serveur" title="Client-serveur">client-serveur</a> développé pour le <i><span class="lang-en" lang="en"><a href="World_Wide_Web" title="World Wide Web">World Wide Web</a></span></i>. <a href="Hypertext_Transfer_Protocol_Secure" title="Hypertext Transfer Protocol Secure">HTTPS</a> (avec S pour <span class="lang-en" lang="en"><i>secure</i></span>, soit «&nbsp;sécurisé&nbsp;») est la variante sécurisée par le <a href="Chiffrement" title="Chiffrement">chiffrement</a> et l'<a href="Authentification" title="Authentification">authentification</a>.
</p><p>HTTP est, avec <a href="Hypertext_Markup_Language" title="Hypertext Markup Language">HTML</a> et les <a href="Uniform_Resource_Locator" title="Uniform Resource Locator">URL</a>, une des trois inventions fondamentales de <a href="Tim_Berners-Lee" title="Tim Berners-Lee">Tim Berners-Lee</a> pour créer le <a href="World_Wide_Web" title="World Wide Web">World Wide Web</a>.
</p><p>Les <a href="Client_HTTP" title="Client HTTP">clients HTTP</a> les plus connus sont les <a href="Navigateur_web" title="Navigateur web">navigateurs Web</a>. HTTP est aussi utilisé hors du Web pour mettre en œuvre les <a href="Interface_de_programmation" title="Interface de programmation">interfaces de programmation</a> distribuée fondées sur <a href="SOAP" title="SOAP">SOAP</a> et <a href="Representational_state_transfer" title="Representational state transfer">REST</a>.
</p>

<div class="mw-heading mw-heading2"><h2 id="Historique">Historique</h2></div>

<p>HTTP a été inventé par <a href="Tim_Berners-Lee" title="Tim Berners-Lee">Tim Berners-Lee</a> avec les <a href="Adresse_Web" class="mw-redirect" title="Adresse Web">adresses Web</a> et le langage <a href="Hypertext_Markup_Language" title="Hypertext Markup Language">HTML</a> pour créer le <a href="World_Wide_Web" title="World Wide Web">World Wide Web</a>. À cette époque, le <span class="lang-en" lang="en"><i><a href="File_Transfer_Protocol" title="File Transfer Protocol">File Transfer Protocol</a></i></span> (FTP) était déjà disponible pour transférer des fichiers, mais il ne supportait pas la notion de <a href="Format_de_donn%C3%A9es" title="Format de données">format de données</a> telle qu'introduite par <span class="lang-en" lang="en"><i><a href="Multipurpose_Internet_Mail_Extensions" title="Multipurpose Internet Mail Extensions">Multipurpose Internet Mail Extensions</a></i></span> (MIME). La première version de HTTP était très élémentaire, mais prévoyait déjà le support d'en-têtes MIME pour décrire les données transmises. Cette première version reste encore partiellement utilisable de nos jours, connue sous le nom de HTTP/0.9.
</p><p>En <time class="nowrap date-lien" datetime="1996-05" data-sort-value="1996-05"><a href="Mai_1996" title="Mai 1996">mai</a> <a href="1996_en_informatique" title="1996 en informatique">1996</a></time>, la <abbr class="abbr" title="Request for comments" lang="en">RFC</abbr>&nbsp;1945<sup id="cite_ref-RFC-1945_1-0" class="reference"><a href="#cite_note-RFC-1945-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> décrit HTTP tel que communément implémenté à l'époque et connu sous le nom de HTTP/1.0. Cette version supporte la gestion de cache et l'identification.
</p><p>En <time class="nowrap date-lien" datetime="1997-01" data-sort-value="1997-01"><a href="Janvier_1997" title="Janvier 1997">janvier</a> <a href="1997_en_informatique" title="1997 en informatique">1997</a></time>, HTTP/1.1 devient finalement standard de l'<a href="Internet_Engineering_Task_Force" title="Internet Engineering Task Force">IETF</a>. Il est décrit dans la <abbr class="abbr" title="Request for comments" lang="en">RFC</abbr>&nbsp;2068<sup id="cite_ref-RFC-2068_2-0" class="reference"><a href="#cite_note-RFC-2068-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> de l'IETF, puis dans la <abbr class="abbr" title="Request for comments" lang="en">RFC</abbr>&nbsp;2616<sup id="cite_ref-RFC-2616_3-0" class="reference"><a href="#cite_note-RFC-2616-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> en <time class="nowrap date-lien" datetime="1999-06" data-sort-value="1999-06"><a href="Juin_1999" title="Juin 1999">juin</a> <a href="1999_en_informatique" title="1999 en informatique">1999</a></time>. Cette version ajoute le support du transfert en <a href="Pipelining_HTTP" title="Pipelining HTTP">pipeline</a> (ou pipelinage) et la négociation de type de contenu (format de données, langue). HTTP/1.1 rend la présence de l'entête <code>Host</code> obligatoire dans les requêtes afin de supporter l'<a href="H%C3%A9bergement_mutualis%C3%A9" title="Hébergement mutualisé">hébergement mutualisé</a>.
</p><p>En <time class="nowrap date-lien" datetime="2012-03" data-sort-value="2012-03"><a href="Mars_2012" title="Mars 2012">mars</a> <a href="2012_en_informatique" title="2012 en informatique">2012</a></time>, les travaux à propos de HTTP/2.0 démarrent à l'IETF adoptant SPDY comme matériel de départ.
</p><p>En <time class="nowrap date-lien" datetime="2014-02" data-sort-value="2014-02"><a href="F%C3%A9vrier_2014" title="Février 2014">février</a> <a href="2014_en_informatique" title="2014 en informatique">2014</a></time>, la spécification de HTTP 1.1 a été republiée. Elle a été éclatée en plusieurs RFC et corrigée pour toutes ses imprécisions, <abbr class="abbr" title="Request for comments" lang="en">RFC</abbr>&nbsp;7230<sup id="cite_ref-RFC-7230_4-0" class="reference"><a href="#cite_note-RFC-7230-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> à <abbr class="abbr" title="Request for comments" lang="en">RFC</abbr>&nbsp;7237<sup id="cite_ref-RFC-7237_5-0" class="reference"><a href="#cite_note-RFC-7237-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Implémentation"><span id="Impl.C3.A9mentation"></span>Implémentation</h2></div>
<p><span id="Request_methods"></span>
</p>
<div class="mw-heading mw-heading3"><h3 id="Méthodes"><span id="M.C3.A9thodes"></span>Méthodes</h3></div>

<p>Dans le protocole HTTP, une méthode est une <b>commande</b> spécifiant un type de requête, c'est-à-dire qu'elle demande au serveur d'effectuer une action. En général l'action concerne une ressource identifiée par l'<a href="Uniform_Resource_Locator" title="Uniform Resource Locator">URL</a> qui suit le nom de la méthode.
</p><p>Dans l'illustration ci-contre, une requête GET est envoyée pour récupérer la page d'accueil du site web www.perdu.com&nbsp;:
</p>
<pre>GET / HTTP/1.1
Host: www.perdu.com
</pre>
<p>Il existe de nombreuses méthodes, les plus courantes étant GET, HEAD et POST&nbsp;:
</p>
<dl><dt><code>GET</code></dt>
<dd>C'est la méthode la plus courante pour demander une ressource. Une requête GET est sans effet sur la ressource, il doit être possible de répéter la requête sans effet.</dd>
<dt><code>HEAD</code></dt>
<dd>Cette méthode ne demande que des informations sur la ressource, sans demander la ressource elle-même.</dd>
<dt><code>POST</code></dt>
<dd>Cette méthode est utilisée pour transmettre des données en vue d'un traitement à une ressource (le plus souvent depuis un formulaire HTML). L'<a href="Uniform_Resource_Identifier" title="Uniform Resource Identifier">URI</a> fourni est l'URI d'une ressource à laquelle s'appliqueront les données envoyées. Le résultat peut être la création de nouvelles ressources ou la modification de ressources existantes. À cause de la mauvaise implémentation des méthodes HTTP (pour <a href="Asynchronous_JavaScript_and_XML" class="mw-redirect" title="Asynchronous JavaScript and XML">Ajax</a>) par certains navigateurs (et la norme <a href="HTML" class="mw-redirect" title="HTML">HTML</a> qui ne supporte que les méthodes GET et POST pour les formulaires), cette méthode est souvent utilisée en remplacement de la requête PUT, qui devrait être utilisée pour la mise à jour de ressources.</dd>
<dt><code>OPTIONS</code></dt>
<dd>Cette méthode permet d'obtenir les options de communication d'une ressource ou du serveur en général.</dd>
<dt><code>CONNECT</code></dt>
<dd>Cette méthode permet d'utiliser un proxy comme un tunnel de communication.</dd>
<dt><code>TRACE</code></dt>
<dd>Cette méthode demande au serveur de retourner ce qu'il a reçu, dans le but de tester et effectuer un diagnostic sur la connexion.</dd>
<dt><code>PUT</code></dt>
<dd>Cette méthode permet de remplacer ou d'ajouter une ressource sur le serveur. L'URI fourni est celui de la ressource en question.</dd>
<dt><code>PATCH</code></dt>
<dd>Cette méthode permet, contrairement à PUT, de faire une modification <b>partielle</b> d'une ressource.</dd>
<dt><code>DELETE</code></dt>
<dd>Cette méthode permet de supprimer une ressource du serveur.</dd></dl>
<p>Ces 3 dernières méthodes nécessitent généralement un accès privilégié.
</p><p>Certains serveurs autorisent d'autres méthodes de gestion de leurs ressources (par exemple <a href="WebDAV" title="WebDAV">WebDAV</a>).
</p>
<div class="mw-heading mw-heading3"><h3 id="Du_client_au_serveur">Du client au serveur</h3></div>
<p>La liaison entre le client et le serveur n'est pas toujours directe, il peut exister des machines intermédiaires servant de relais&nbsp;:
</p>
<ul><li>Un <a href="Proxy" title="Proxy">proxy</a> (ou serveur mandataire) peut modifier les réponses et requêtes qu'il reçoit et peut gérer un cache des ressources demandées.</li>
<li>Une <a href="Passerelle_(informatique)" title="Passerelle (informatique)">passerelle</a> (ou <span class="lang-en" lang="en"><i>gateway</i></span>) est un intermédiaire modifiant le protocole utilisé.</li>
<li>Un <a href="Tunnel_(r%C3%A9seau_informatique)" title="Tunnel (réseau informatique)">tunnel</a> transmet les requêtes et les réponses sans aucune modification, ni mise en cache.</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Identification">Identification</h3></div>
<p>HTTP permet l'<a href="HTTP_Authentification" class="mw-redirect" title="HTTP Authentification">identification</a> du visiteur par transmission d'un nom et d'un <a href="Mot_de_passe" title="Mot de passe">mot de passe</a>.
Il existe deux modes d'identification&nbsp;: <span class="lang-en" lang="en"><i>Basic</i></span> et <span class="lang-en" lang="en"><i>Digest</i></span> (<abbr class="abbr" title="Request for comments" lang="en">RFC</abbr>&nbsp;2617<sup id="cite_ref-RFC-2617_6-0" class="reference"><a href="#cite_note-RFC-2617-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>). Le premier mode transmet le mot de passe en clair et ne doit donc être utilisé qu'avec le protocole HTTPS. Le deuxième mode permet une identification sans transmettre le mot de passe en clair.
L'identification est, cependant souvent effectuée par une couche applicative supérieure à HTTP.
</p>
<div class="mw-heading mw-heading3"><h3 id="Liste_de_serveurs_HTTP">Liste de serveurs HTTP</h3></div>

<ul><li>C&nbsp;: <a href="Apache_HTTP_Server" title="Apache HTTP Server">Apache</a>, <a href="Zeus_Web_Server" title="Zeus Web Server">Zeus Web Server</a>, <a href="Nginx" class="mw-redirect" title="Nginx">nginx</a>, <a href="Lighttpd" title="Lighttpd">lighttpd</a>, <a href="Cherokee_Web_Server" title="Cherokee Web Server">Cherokee</a>, <a href="Hiawatha_(serveur_HTTP)" title="Hiawatha (serveur HTTP)">Hiawatha Webserver</a></li>
<li>ASP/ASP.Net(C#, VB.net)&nbsp;: <a href="Internet_Information_Services" title="Internet Information Services">IIS</a></li>
<li>Java&nbsp;: <a href="Apache_Tomcat" title="Apache Tomcat">Tomcat</a>, <a href="Jetty" title="Jetty">Jetty</a>, <a href="GlassFish" title="GlassFish">GlassFish</a>, <a href="JBoss" class="mw-redirect" title="JBoss">JBoss (WildFly dans les nouvelles versions)</a>, <a href="JOnAS" title="JOnAS">JOnAS</a>, <a href="Vert.x" title="Vert.x">Vert.x</a></li>
<li>Python&nbsp;: <a href="Zope" title="Zope">Zope</a></li>
<li>Pike&nbsp;: <a href="Caudium_(logiciel)" title="Caudium (logiciel)">Caudium</a></li>
<li>Ruby&nbsp;: <a href="WEBrick" title="WEBrick">WEBrick</a>, <a href="Mongrel_(serveur_HTTP)" title="Mongrel (serveur HTTP)">Mongrel</a>, Thin<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup></li>
<li>Erlang&nbsp;: <a href="Yaws" title="Yaws">Yaws</a></li>
<li><a href="JavaScript" title="JavaScript">Javascript</a>&nbsp;: <a href="Express.js" title="Express.js">Express.js</a></li>
<li>Autres&nbsp;: <abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a href="https://en.wikipedia.org/wiki/Comparison_of_web_servers" class="extiw external" title="en:Comparison of web servers">Comparison of web servers</a></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Versions">Versions</h3></div>
<div class="mw-heading mw-heading4"><h4 id="HTTP_0.9">HTTP 0.9</h4></div>
<p>Au début du <span class="lang-en" lang="en"><a href="World_Wide_Web" title="World Wide Web">World Wide Web</a></span>, il était prévu d'ajouter au protocole HTTP des capacités de <a href="N%C3%A9gociation_de_contenu" title="Négociation de contenu">négociation de contenu</a>, en s'inspirant notamment de <a href="Multipurpose_Internet_Mail_Extensions" title="Multipurpose Internet Mail Extensions">MIME</a>. En attendant, le protocole HTTP 0.9 était extrêmement simple.
</p>
<ol><li>connexion du <a href="Client_HTTP" title="Client HTTP">client HTTP</a></li>
<li>envoi d'une requête de méthode <code>GET</code></li>
<li>réponse du <a href="Serveur_HTTP" class="mw-redirect" title="Serveur HTTP">serveur HTTP</a></li>
<li>le serveur ferme la connexion pour signaler la fin de la réponse</li></ol>
<p>Requête&nbsp;:
</p>
<pre>GET /page.html
</pre>
<p>La méthode <code>GET</code> est la seule possible. Le serveur reconnaît qu'il a affaire à une requête HTTP 0.9 au fait que la version n'est pas précisée à la suite de l'URI.
</p><p>Réponse&nbsp;:
</p>
<pre> &lt;TITLE&gt;Exemple&lt;/TITLE&gt;
&lt;H1&gt;Exemple&lt;/H1&gt;Ceci est une page d'exemple.
</pre>
<p>Pour répondre à une requête HTTP 0.9, le serveur envoie directement le contenu de la réponse, sans métadonnées. Il ne doit jamais se comporter ainsi pour les requêtes HTTP de version supérieure.
</p><p>Inutile de chercher les versions inférieures à 0.9 du protocole HTTP&nbsp;: elles n'existent pas, car HTTP 0.9 n'avait initialement pas de numéro de version. Il a fallu lui en attribuer un quand HTTP 1.0 est arrivé.
</p>
<div class="mw-heading mw-heading4"><h4 id="HTTP_1.0">HTTP 1.0</h4></div>
<p>Le protocole HTTP 1.0, décrit dans la <abbr class="abbr" title="Request for comments" lang="en">RFC</abbr>&nbsp;1945<sup id="cite_ref-RFC-1945_1-1" class="reference"><a href="#cite_note-RFC-1945-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>, prévoit l'utilisation d'<a href="Header" title="Header">en-têtes</a> spécifiés dans la <abbr class="abbr" title="Request for comments" lang="en">RFC</abbr>&nbsp;822<sup id="cite_ref-RFC-822_8-0" class="reference"><a href="#cite_note-RFC-822-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>. La gestion de la connexion reste identique à HTTP 0.9&nbsp;: le client établit la connexion, envoie une requête, le serveur répond et ferme immédiatement la connexion.
</p><p>Une requête HTTP présente le format suivant&nbsp;:
</p>
<pre> Ligne de commande (Commande, URL, Version de protocole)
En-tête de requête
[Ligne vide]
Corps de requête
</pre>
<p>Les réponses HTTP présentent le format suivant&nbsp;:
</p>
<pre> Ligne de statut (Version, Code-réponse, Texte-réponse)
En-tête de réponse
[Ligne vide]
Corps de réponse
</pre>
<p>Requête&nbsp;:
</p>
<pre>GET /page.html HTTP/1.0
Host: example.com
Referer: http://example.com/
User-Agent: CERN-LineMode/2.15 libwww/2.17b3
</pre>
<p>La version du protocole HTTP est précisée à la suite de l'URI. La requête doit être terminée par un double retour à la ligne (<a href="CRLF" class="mw-redirect" title="CRLF">CRLFCRLF</a>). HTTP 1.0 supporte aussi les méthodes HEAD et POST.
On constate l'usage d'en-têtes inspirés de <a href="Multipurpose_Internet_Mail_Extensions" title="Multipurpose Internet Mail Extensions">MIME</a> pour transférer les métadonnées&nbsp;:
</p>
<dl><dt><code>Host</code></dt>
<dd>Permet de préciser le <a href="Site_web" title="Site web">site web</a> concerné par la requête, ce qui est nécessaire pour un serveur hébergeant plusieurs sites à la même <a href="Adresse_IP" title="Adresse IP">adresse IP</a> (<span class="lang-en" lang="en"><i>name based virtual host</i></span>, hôte virtuel basé sur le nom). C'est le seul en-tête réellement important.</dd>
<dt><code>Referer</code></dt>
<dd>Indique l'<a href="Uniform_Resource_Identifier" title="Uniform Resource Identifier">URI</a> du document qui a donné un lien sur la ressource demandée. Cet en-tête permet aux <span class="lang-en" lang="en"><a href="Webmestre" class="mw-redirect" title="Webmestre">webmasters</a></span> d'observer d'où viennent les visiteurs.</dd>
<dt><code>User-Agent</code></dt>
<dd>Indique le logiciel utilisé pour se connecter. Il s'agit généralement d'un <a href="Navigateur_web" title="Navigateur web">navigateur web</a> ou d'un <a href="Robot_d'indexation" title="Robot d'indexation">robot d'indexation</a>.</dd></dl>
<p>Réponse&nbsp;:
</p>
<pre>HTTP/1.0 200 OK
Date: Fri, 31 Dec 1999 23:59:59 GMT
Server: Apache/0.8.4
Content-Type: text/html
Content-Length: 59
Expires: Sat, 01 Jan 2000 00:59:59 GMT
Last-modified: Fri, 09 Aug 1996 14:21:40 GMT

&lt;TITLE&gt;Exemple&lt;/TITLE&gt;
&lt;P&gt;Ceci est une page d'exemple.&lt;/P&gt;
</pre>
<p>La première ligne donne le <a href="Liste_des_codes_HTTP" title="Liste des codes HTTP">code de statut HTTP</a> (200 dans ce cas).
</p>
<dl><dt><code>Date</code></dt>
<dd>Moment auquel le message est généré.</dd>
<dt><code>Server</code></dt>
<dd>Indique quel modèle de <a href="Serveur_HTTP" class="mw-redirect" title="Serveur HTTP">serveur HTTP</a> répond à la requête.</dd>
<dt><code>Content-Type</code></dt>
<dd>Indique le type <a href="Multipurpose_Internet_Mail_Extensions" title="Multipurpose Internet Mail Extensions">MIME</a> de la ressource.</dd>
<dt><code>Content-Length</code></dt>
<dd>Indique la taille en <a href="Octet" title="Octet">octets</a> de la ressource.</dd>
<dt><code>Expires</code></dt>
<dd>Indique le moment après lequel la ressource devrait être considérée obsolète&nbsp;; permet aux navigateurs Web de déterminer jusqu'à quand garder la ressource en <a href="M%C3%A9moire_cache" title="Mémoire cache">mémoire cache</a>.</dd>
<dt><code>Last-Modified</code></dt>
<dd>Indique la date de dernière modification de la ressource demandée.</dd></dl>
<div class="mw-heading mw-heading4"><h4 id="HTTP_1.1">HTTP 1.1</h4></div>
<p>Le protocole HTTP 1.1 est décrit par le <abbr class="abbr" title="Request for comments" lang="en">RFC</abbr>&nbsp;2616<sup id="cite_ref-RFC-2616_3-1" class="reference"><a href="#cite_note-RFC-2616-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> qui rend le <abbr class="abbr" title="Request for comments" lang="en">RFC</abbr>&nbsp;2068<sup id="cite_ref-RFC-2068_2-1" class="reference"><a href="#cite_note-RFC-2068-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> obsolète.
La différence avec HTTP 1.0 est une meilleure gestion du cache. L'en-tête <span class="lang-en" lang="en"><b>Host</b></span> devient obligatoire dans les requêtes.
</p><p>Les soucis majeurs des deux premières versions du protocole HTTP sont d'une part le nombre important de connexions lors du chargement d'une page complexe (contenant beaucoup d'images ou d'animations) et d'autre part le temps d'ouverture d'une connexion entre client et serveur (l'<a href="Transmission_Control_Protocol#Établissement_d'une_connexion" title="Transmission Control Protocol">établissement d'une connexion TCP</a> prend un temps triple de la latence entre client et serveur). Des expérimentations de connexions persistantes ont cependant été effectuées avec HTTP 1.0 (notamment par l'emploi de l'en-tête <span class="lang-en" lang="en"><b>Connection: Keep-Alive</b></span>), mais cela n'a été définitivement mis au point qu'avec HTTP 1.1.
</p><p>Par défaut, HTTP 1.1 utilise des connexions persistantes, autrement dit la connexion n'est pas immédiatement fermée après une requête, mais reste disponible pour une nouvelle requête. On appelle souvent cette fonctionnalité <span class="lang-en" lang="en"><i>keep-alive</i></span>. Il est aussi permis à un client HTTP d'envoyer plusieurs requêtes sur la même connexion sans attendre les réponses. On appelle cette fonctionnalité <span class="lang-en" lang="en"><i><a href="Pipelining_HTTP" title="Pipelining HTTP">pipelining</a></i></span>. La persistance des connexions permet d'accélérer le chargement de pages contenant plusieurs ressources, tout en diminuant la charge du réseau.
</p><p>La gestion de la persistance d'une connexion est gérée par l'en-tête <span class="lang-en" lang="en"><b>Connection</b></span>.
</p><p>HTTP 1.1 supporte la négociation de contenu. Un client HTTP 1.1 peut accompagner la requête pour une ressource d'en-têtes indiquant quels sont les <a href="Langue" title="Langue">langues</a> et <a href="Format_de_donn%C3%A9es" title="Format de données">formats de données</a> préférés.
Il s'agit des en-têtes dont le nom commence par <span class="lang-en" lang="en"><b>Accept-</b></span>.
</p><p>Les en-têtes supplémentaires supportés par HTTP 1.1 sont&nbsp;:
</p>
<dl><dt><code>Connection</code></dt>
<dd>Cet en-tête peut être envoyé par le client ou le serveur et contient une liste de noms spécifiant les options à utiliser avec la connexion actuelle. Si une option possède des paramètres ceux-ci sont spécifiés par l'en-tête portant le même nom que l'option (<span class="lang-en" lang="en"><b>Keep-Alive</b></span> par exemple, pour spécifier le nombre maximum de requêtes par connexion). Le nom <span class="lang-en" lang="en"><b>close</b></span> est réservé pour spécifier que la connexion doit être fermée après traitement de la requête en cours.</dd>
<dt><code>Accept</code></dt>
<dd>Cet en-tête liste les types MIME de contenu acceptés par le client. Le caractère étoile * peut servir à spécifier tous les types / sous-types.</dd>
<dt><code>Accept-Charset</code></dt>
<dd>Spécifie les encodages de caractères acceptés.</dd>
<dt><code>Accept-Language</code></dt>
<dd>Spécifie les langues acceptées.</dd></dl>
<p>L'ordre de préférence de chaque option (type, encodage ou langue) est spécifié par le paramètre optionnel <b>q</b> contenant une valeur décimale entre 0 (<span class="lang-en" lang="en"><i>inacceptable</i></span>) et 1 (<span class="lang-en" lang="en"><i>acceptable</i></span>) inclus (3 décimales maximum après la virgule), valant 1 par défaut.
</p><p>Le support des connexions persistantes doit également fonctionner dans les cas où la taille de la ressource n'est pas connue d'avance (ressource générée dynamiquement par le serveur, flux externe au serveur…).
</p>

<p>Pour cela, l'encodage de transfert nommé <span class="lang-en" lang="en"><b>chunked</b></span> permet de transmettre la ressource par morceaux consécutifs en précédant chacun par une ligne de texte donnant la taille de celui-ci en hexadécimal. Le transfert se termine alors par un morceau de taille nulle, où des en-têtes finaux peuvent être envoyés.
</p><p>Les en-têtes supplémentaires liés à cet encodage de transfert sont&nbsp;:
</p>
<dl><dt><code>Transfer-Encoding</code></dt>
<dd>Spécifie l'encodage de transfert. La seule valeur définie par la spécification <abbr class="abbr" title="Request for comments" lang="en">RFC</abbr>&nbsp;2616<sup id="cite_ref-RFC-2616_3-2" class="reference"><a href="#cite_note-RFC-2616-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> est <span class="lang-en" lang="en"><b>chunked</b>.</span></dd></dl>
<dl><dt><code>Trailer</code></dt>
<dd>Liste tous les en-têtes figurant après le dernier morceau transféré.</dd>
<dt><code>TE</code></dt>
<dd>Envoyé par le client pour spécifier les encodages de contenu supportés (<span class="lang-en" lang="en"><b>Content-Encoding</b></span>, ne pas confondre avec <span class="lang-en" lang="en"><b>Transfer-Encoding</b></span> car <span class="lang-en" lang="en"><b>chunked</b></span> est obligatoirement supporté par les clients et serveurs implémentant le standard HTTP/1.1), et spécifie si le client supporte l'en-tête <span class="lang-en" lang="en"><b>Trailer</b></span> en ajoutant <span class="lang-en" lang="en"><b>trailers</b></span> à la liste.</dd></dl>
<div class="mw-heading mw-heading4"><h4 id="HTTP_1.1_bis">HTTP 1.1 bis</h4></div>
<p><abbr class="abbr" title="Request for comments" lang="en">RFC</abbr>&nbsp;2616<sup id="cite_ref-RFC-2616_3-3" class="reference"><a href="#cite_note-RFC-2616-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> comprenait de nombreuses imprécisions. Le groupe de travail HTTP a pris quelques années afin de clarifier la spécification sans en modifier la sémantique tel que préconisé dans la charte de fonctionnement du groupe pour ce travail. En <time class="nowrap" datetime="2014-06" data-sort-value="2014-06">juin 2014</time>, huit nouveaux documents ont été publiés qui rendent obsolète la <abbr class="abbr" title="Request for comments" lang="en">RFC</abbr>&nbsp;2616<sup id="cite_ref-RFC-2616_3-4" class="reference"><a href="#cite_note-RFC-2616-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>&nbsp;:
</p>
<ul><li><abbr class="abbr" title="Request for comments" lang="en">RFC</abbr>&nbsp;7230<sup id="cite_ref-RFC-7230_4-1" class="reference"><a href="#cite_note-RFC-7230-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing (Standard proposé)</li>
<li><abbr class="abbr" title="Request for comments" lang="en">RFC</abbr>&nbsp;7231<sup id="cite_ref-RFC-7231_9-0" class="reference"><a href="#cite_note-RFC-7231-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content (Standard proposé)</li>
<li><abbr class="abbr" title="Request for comments" lang="en">RFC</abbr>&nbsp;7232<sup id="cite_ref-RFC-7232_10-0" class="reference"><a href="#cite_note-RFC-7232-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests (Standard proposé)</li>
<li><abbr class="abbr" title="Request for comments" lang="en">RFC</abbr>&nbsp;7233<sup id="cite_ref-RFC-7233_11-0" class="reference"><a href="#cite_note-RFC-7233-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> Hypertext Transfer Protocol (HTTP/1.1): Range Requests (Standard proposé)</li>
<li><abbr class="abbr" title="Request for comments" lang="en">RFC</abbr>&nbsp;7234<sup id="cite_ref-RFC-7234_12-0" class="reference"><a href="#cite_note-RFC-7234-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> Hypertext Transfer Protocol (HTTP/1.1): Caching (Standard proposé)</li>
<li><abbr class="abbr" title="Request for comments" lang="en">RFC</abbr>&nbsp;7235<sup id="cite_ref-RFC-7235_13-0" class="reference"><a href="#cite_note-RFC-7235-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> Hypertext Transfer Protocol (HTTP/1.1): Authentication (Standard proposé)</li>
<li><abbr class="abbr" title="Request for comments" lang="en">RFC</abbr>&nbsp;7236<sup id="cite_ref-RFC-7236_14-0" class="reference"><a href="#cite_note-RFC-7236-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> Hypertext Transfer Protocol (HTTP/1.1): Authentication Scheme Registrations (Information)</li>
<li><abbr class="abbr" title="Request for comments" lang="en">RFC</abbr>&nbsp;7237<sup id="cite_ref-RFC-7237_5-1" class="reference"><a href="#cite_note-RFC-7237-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> Hypertext Transfer Protocol (HTTP/1.1): Method Registrations (Information)</li></ul>
<div class="mw-heading mw-heading4"><h4 id="HTTP/2"><span id="HTTP.2F2"></span>HTTP/2</h4></div>

<p>Une nouvelle version d'HTTP, HTTP/2, a été développée au sein du groupe de travail «&nbsp;Hypertext Transfer Protocol Bis&nbsp;» (httpbis) de l'<a href="Internet_Engineering_Task_Force" title="Internet Engineering Task Force">Internet Engineering Task Force</a><sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> et approuvée comme RFC standard le <time class="nowrap" datetime="2015-02-18" data-sort-value="2015-02-18">18 février 2015</time><sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup>.
Le développement d'HTTP/2 a débuté à la suite de la création du protocole <a href="SPDY" title="SPDY">SPDY</a> proposé par <a href="Google" title="Google">Google</a> afin de réduire le temps de chargement des pages Web<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup><sup class="reference cite_virgule">,</sup><sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup>. Le groupe de travail httpbis s'était initialement interdit de proposer une nouvelle version d'HTTP, concentrant son activité sur la clarification des spécifications d'HTTP 1.1. Considérant l'arrivée de SPDY et son adoption rapide sur le Web, avec notamment des implémentations dans deux des principaux <a href="Navigateur_web" title="Navigateur web">navigateurs Web</a>, <a href="Google_Chrome" title="Google Chrome">Google Chrome</a> et <a href="Mozilla_Firefox" title="Mozilla Firefox">Mozilla Firefox</a>, Mark Nottingham, «&nbsp;chair&nbsp;» d'httpbis, a émis l'opinion qu'il était temps d'envisager HTTP/2 et proposé d'amender la charte d'httpbis en ce sens, initiant de fait le développement du nouveau protocole<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup>.
</p><p>SPDY constituait une option naturelle pour servir de base à HTTP/2. Deux autres propositions concurrentes ont été ensuite transmises à l'IETF&nbsp;: le protocole «&nbsp;HTTP Speed+Mobility&nbsp;» par <a href="Microsoft" title="Microsoft">Microsoft</a><sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> et une proposition de mise à jour d'HTTP («&nbsp;Network-Friendly HTTP Upgrade&nbsp;»)<sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup>. En <time class="nowrap" datetime="2012-07" data-sort-value="2012-07">juillet 2012</time>, httpbis a publié un appel à expression d'intérêt («&nbsp;Call for Expression of Interest&nbsp;») afin de recueillir l'avis d'acteurs du Web sur les propositions<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup>. Parmi les réponses obtenues figure celle de <a href="Facebook" title="Facebook">Facebook</a> qui a signifié sa préférence pour SPDY<sup id="cite_ref-23" class="reference"><a href="#cite_note-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup>. En <time class="nowrap" datetime="2012-11" data-sort-value="2012-11">novembre 2012</time>, l'IETF a publié le premier draft d'HTTP/2, qui est une copie directe de SPDY<sup id="cite_ref-24" class="reference"><a href="#cite_note-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup>.
</p><p>Après plus de deux ans de discussions, la RFC est approuvée en <time class="nowrap" datetime="2015-02" data-sort-value="2015-02">février 2015</time> par le groupe de pilotage de l'IETF, et est publiée en <time class="nowrap" datetime="2015-05" data-sort-value="2015-05">mai 2015</time>.
</p><p>Le module permettant la prise en charge du protocole HTTP/2 est disponible depuis la version 2.4.17<sup id="cite_ref-25" class="reference"><a href="#cite_note-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup> du serveur Web Apache, et depuis la version 1.9.5<sup id="cite_ref-26" class="reference"><a href="#cite_note-26"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup> de Nginx.
</p>
<div class="mw-heading mw-heading4"><h4 id="HTTP/3"><span id="HTTP.2F3"></span>HTTP/3</h4></div>
<p>Une nouvelle version d’HTTP, HTTP/3, est la troisième et prochaine version majeure du protocole de transfert hypertexte utilisé pour échanger des informations sur le World Wide Web. Celle-ci repose sur le protocole <a href="QUIC" title="QUIC">QUIC</a>, développé par Google en 2012.
</p><p>La sémantique HTTP est cohérente d'une version à l'autre. En effet, les mêmes méthodes de requête, codes de statut et champs de message sont généralement applicables à toutes les versions.
</p><p>Si HTTP/1 et HTTP/2 utilisent tous deux TCP comme protocole de transport, HTTP/3 quant à lui utilise le protocole <a href="QUIC" title="QUIC">QUIC</a>, un protocole de la couche transport qui est plus adapté au Web. Le passage à <a href="QUIC" title="QUIC">QUIC</a> vise à résoudre un problème majeur de HTTP/2 appelé «&nbsp;Head-of-line Blocking&nbsp;» grâce à une encapsulation des paquets dans UDP. En effet, avec HTTP/2 reposant sur TCP, une connexion permet d'accéder aux ressources demandées une à une (une seule à la fois). Lorsque l'envoi d’une ressource est perturbé (par exemple par une perte de paquets), la livraison globale des ressources est ralentie. Avec HTTP/3 reposant sur le protocole <a href="QUIC" title="QUIC">QUIC</a>, ce problème n'est plus, puisque tous les flux sont indépendants étant encapsulés dans UDP, protocole de transport ne nécessitant pas de connexion.
</p>
<div class="mw-heading mw-heading2"><h2 id="Notes_et_références"><span id="Notes_et_r.C3.A9f.C3.A9rences"></span>Notes et références</h2></div>
<div class="references-small decimal" style="column-width:30em; column-count:2;"><ol class="references">
<li id="cite_note-RFC-1945-1"><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="https://tools.ietf.org/html/rfc1945"><span class="lang-en" lang="en">Request for comments</span> <abbr class="abbr" title="numéro">n<sup>o</sup></abbr>&nbsp;1945</a>
</span>
</li>
<li id="cite_note-RFC-2068-2"><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="https://tools.ietf.org/html/rfc2068"><span class="lang-en" lang="en">Request for comments</span> <abbr class="abbr" title="numéro">n<sup>o</sup></abbr>&nbsp;2068</a>
</span>
</li>
<li id="cite_note-RFC-2616-3"><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="https://tools.ietf.org/html/rfc2616"><span class="lang-en" lang="en">Request for comments</span> <abbr class="abbr" title="numéro">n<sup>o</sup></abbr>&nbsp;2616</a>
</span>
</li>
<li id="cite_note-RFC-7230-4"><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="https://tools.ietf.org/html/rfc7230"><span class="lang-en" lang="en">Request for comments</span> <abbr class="abbr" title="numéro">n<sup>o</sup></abbr>&nbsp;7230</a>
</span>
</li>
<li id="cite_note-RFC-7237-5"><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="https://tools.ietf.org/html/rfc7237"><span class="lang-en" lang="en">Request for comments</span> <abbr class="abbr" title="numéro">n<sup>o</sup></abbr>&nbsp;7237</a>
</span>
</li>
<li id="cite_note-RFC-2617-6"><span class="mw-cite-backlink"><a href="#cite_ref-RFC-2617_6-0">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="https://tools.ietf.org/html/rfc2617"><span class="lang-en" lang="en">Request for comments</span> <abbr class="abbr" title="numéro">n<sup>o</sup></abbr>&nbsp;2617</a>
</span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><a href="#cite_ref-7">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> «&nbsp;<a rel="nofollow" class="external text" href="https://github.com/macournoyer/thin"><cite style="font-style:normal;" lang="en">Macournoyer/thin&nbsp;: A very fast &amp; simple Ruby web server</cite></a>&nbsp;», sur <span class="italique">GitHub</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2023-10-15" data-sort-value="2023-10-15">15 octobre 2023</time>)</small></span>.</span>
</li>
<li id="cite_note-RFC-822-8"><span class="mw-cite-backlink"><a href="#cite_ref-RFC-822_8-0">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="https://tools.ietf.org/html/rfc822"><span class="lang-en" lang="en">Request for comments</span> <abbr class="abbr" title="numéro">n<sup>o</sup></abbr>&nbsp;822</a>
</span>
</li>
<li id="cite_note-RFC-7231-9"><span class="mw-cite-backlink"><a href="#cite_ref-RFC-7231_9-0">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="https://tools.ietf.org/html/rfc7231"><span class="lang-en" lang="en">Request for comments</span> <abbr class="abbr" title="numéro">n<sup>o</sup></abbr>&nbsp;7231</a>
</span>
</li>
<li id="cite_note-RFC-7232-10"><span class="mw-cite-backlink"><a href="#cite_ref-RFC-7232_10-0">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="https://tools.ietf.org/html/rfc7232"><span class="lang-en" lang="en">Request for comments</span> <abbr class="abbr" title="numéro">n<sup>o</sup></abbr>&nbsp;7232</a>
</span>
</li>
<li id="cite_note-RFC-7233-11"><span class="mw-cite-backlink"><a href="#cite_ref-RFC-7233_11-0">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="https://tools.ietf.org/html/rfc7233"><span class="lang-en" lang="en">Request for comments</span> <abbr class="abbr" title="numéro">n<sup>o</sup></abbr>&nbsp;7233</a>
</span>
</li>
<li id="cite_note-RFC-7234-12"><span class="mw-cite-backlink"><a href="#cite_ref-RFC-7234_12-0">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="https://tools.ietf.org/html/rfc7234"><span class="lang-en" lang="en">Request for comments</span> <abbr class="abbr" title="numéro">n<sup>o</sup></abbr>&nbsp;7234</a>
</span>
</li>
<li id="cite_note-RFC-7235-13"><span class="mw-cite-backlink"><a href="#cite_ref-RFC-7235_13-0">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="https://tools.ietf.org/html/rfc7235"><span class="lang-en" lang="en">Request for comments</span> <abbr class="abbr" title="numéro">n<sup>o</sup></abbr>&nbsp;7235</a>
</span>
</li>
<li id="cite_note-RFC-7236-14"><span class="mw-cite-backlink"><a href="#cite_ref-RFC-7236_14-0">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="https://tools.ietf.org/html/rfc7236"><span class="lang-en" lang="en">Request for comments</span> <abbr class="abbr" title="numéro">n<sup>o</sup></abbr>&nbsp;7236</a>
</span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><a href="#cite_ref-15">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> «&nbsp;<a rel="nofollow" class="external text" href="https://datatracker.ietf.org/wg/httpbis/charter/"><cite style="font-style:normal;" lang="en">Hypertext Transfer Protocol Bis (httpbis)</cite></a>&nbsp;», sur <span class="italique">datatracker.ietf.org</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2013-11-14" data-sort-value="2013-11-14">14 novembre 2013</time>)</small></span>.</span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><a href="#cite_ref-16">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> «&nbsp;<a rel="nofollow" class="external text" href="http://www.ietf.org/blog/2015/02/http2-approved/"><cite style="font-style:normal;" lang="en">HTTP/2 Approved</cite></a>&nbsp;», sur <span class="italique">ietf.org</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2015-02-19" data-sort-value="2015-02-19">19 février 2015</time>)</small></span>.</span>
</li>
<li id="cite_note-17"><span class="mw-cite-backlink"><a href="#cite_ref-17">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> «&nbsp;<a rel="nofollow" class="external text" href="https://sites.google.com/a/chromium.org/dev/spdy/spdy-whitepaper"><cite style="font-style:normal;" lang="en">SPDY: An experimental protocol for a faster web</cite></a>&nbsp;» <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2013-11-14" data-sort-value="2013-11-14">14 novembre 2013</time>)</small></span>.</span>
</li>
<li id="cite_note-18"><span class="mw-cite-backlink"><a href="#cite_ref-18">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2012">«&nbsp;<a rel="nofollow" class="external text" href="http://tools.ietf.org/html/draft-mbelshe-httpbis-spdy-00"><cite style="font-style:normal;">SPDY Protocol (Internet draft)</cite></a>&nbsp;», <time class="nowrap" datetime="2012-02" data-sort-value="2012-02">février 2012</time></span>.</span>
</li>
<li id="cite_note-19"><span class="mw-cite-backlink"><a href="#cite_ref-19">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Nottingham2012"><span class="ouvrage" id="Mark_Nottingham2012"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> Mark Nottingham, «&nbsp;<a rel="nofollow" class="external text" href="http://lists.w3.org/Archives/Public/ietf-http-wg/2012JanMar/0098.html"><cite style="font-style:normal;" lang="en">Rechartering HTTPbis</cite></a>&nbsp;», sur <span class="italique">lists.w3.org</span>, <time class="nowrap" datetime="2012-01-24" data-sort-value="2012-01-24">24 janvier 2012</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2013-11-14" data-sort-value="2013-11-14">14 novembre 2013</time>)</small></span></span>.</span>
</li>
<li id="cite_note-20"><span class="mw-cite-backlink"><a href="#cite_ref-20">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2012"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> «&nbsp;<a rel="nofollow" class="external text" href="http://tools.ietf.org/html/draft-montenegro-httpbis-speed-mobility-02"><cite style="font-style:normal;" lang="en">HTTP Speed+Mobility (Internet draft)</cite></a>&nbsp;», <time class="nowrap" datetime="2012-06-15" data-sort-value="2012-06-15">15 juin 2012</time></span>.</span>
</li>
<li id="cite_note-21"><span class="mw-cite-backlink"><a href="#cite_ref-21">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2012"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> «&nbsp;<a rel="nofollow" class="external text" href="http://tools.ietf.org/html/draft-tarreau-httpbis-network-friendly-00"><cite style="font-style:normal;" lang="en">Proposal for a Network-Friendly HTTP Upgrade</cite></a>&nbsp;», <time class="nowrap" datetime="2012-03-29" data-sort-value="2012-03-29">29 mars 2012</time></span>.</span>
</li>
<li id="cite_note-22"><span class="mw-cite-backlink"><a href="#cite_ref-22">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2012"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> «&nbsp;<a rel="nofollow" class="external text" href="http://trac.tools.ietf.org/wg/httpbis/trac/wiki/Http2CfI"><cite style="font-style:normal;" lang="en">Call for Expressions of Interest</cite></a>&nbsp;», sur <span class="italique">ietf.org</span>, <time class="nowrap" datetime="2012-07-03" data-sort-value="2012-07-03">3 juillet 2012</time></span>.</span>
</li>
<li id="cite_note-23"><span class="mw-cite-backlink"><a href="#cite_ref-23">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2012"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> «&nbsp;<a rel="nofollow" class="external text" href="http://lists.w3.org/Archives/Public/ietf-http-wg/2012JulSep/0251.html"><cite style="font-style:normal;" lang="en">HTTP2 Expression of Interest</cite></a>&nbsp;», <time class="nowrap" datetime="2012-07-15" data-sort-value="2012-07-15">15 juillet 2012</time></span>.</span>
</li>
<li id="cite_note-24"><span class="mw-cite-backlink"><a href="#cite_ref-24">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Synodinos2012"><span class="ouvrage" id="Dio_Synodinos2012"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> Dio Synodinos, «&nbsp;<a rel="nofollow" class="external text" href="http://www.infoq.com/news/2012/11/http20-first-draft"><cite style="font-style:normal;" lang="en">HTTP 2.0 First Draft Published</cite></a>&nbsp;», sur <span class="italique">InfoQ</span>, <time class="nowrap" datetime="2012-11-30" data-sort-value="2012-11-30">30 novembre 2012</time></span></span>.</span>
</li>
<li id="cite_note-25"><span class="mw-cite-backlink"><a href="#cite_ref-25">↑</a> </span><span class="reference-text"><span class="ouvrage">«&nbsp;<a rel="nofollow" class="external text" href="https://httpd.apache.org/docs/2.4/mod/mod_http2.html"><cite style="font-style:normal;">Apache Module mod_http2</cite></a>&nbsp;», sur <span class="italique">httpd.apache.org</span></span>.</span>
</li>
<li id="cite_note-26"><span class="mw-cite-backlink"><a href="#cite_ref-26">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2015"><abbr class="abbr indicateur-langue" title="Langue : anglais américain">(en-US)</abbr> «&nbsp;<a rel="nofollow" class="external text" href="https://www.nginx.com/blog/nginx-1-9-5/"><cite style="font-style:normal;" lang="en-us">HTTP/2 Supported in Open Source NGINX 1.9.5</cite></a>&nbsp;», sur <span class="italique">NGINX</span>, <time class="nowrap" datetime="2015-09-22" data-sort-value="2015-09-22">22 septembre 2015</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2019-07-03" data-sort-value="2019-07-03">3 juillet 2019</time>)</small></span>.</span>
</li>
</ol>
</div>
<div class="mw-heading mw-heading2"><h2 id="Voir_aussi">Voir aussi</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Articles_connexes">Articles connexes</h3></div>
<div style="column-width:20em;column-count:3;column-gap:1em;" class="colonnes">
<ul><li><a href="Liste_des_codes_HTTP" title="Liste des codes HTTP">Liste des codes HTTP</a></li>
<li><a href="Navigateur_web" title="Navigateur web">Navigateur web</a></li>
<li><a href="Pipelining_HTTP" title="Pipelining HTTP">Pipelining HTTP</a></li>
<li><a href="Protocole_de_communication" title="Protocole de communication">Protocole de communication</a></li>
<li><a href="Serveur_HTTP" class="mw-redirect" title="Serveur HTTP">Serveur HTTP</a></li>
<li><span class="lang-en" lang="en"><a href="World_Wide_Web" title="World Wide Web">World Wide Web</a></span></li>
<li><a href="Hypertext_Transfer_Protocol_Secure" title="Hypertext Transfer Protocol Secure">HTTPS</a></li></ul>
</div>
<div class="mw-heading mw-heading3"><h3 id="Liens_externes">Liens externes</h3></div>
<div style="column-width:35em;column-count:2;column-gap:1em;" class="colonnes">
<ul><li><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="https://www.w3.org/Protocols/">HTTP - Hypertext Transfer Protocol</a> sur le site du <a href="W3C" class="mw-redirect" title="W3C">W3C</a></li>
<li><span class="lang-en" lang="en"><a href="https://datatracker.ietf.org/doc/html/rfc1945" class="extiw external" title="rfc:1945">RFC 1945</a>, Hypertext Transfer Protocol -- HTTP/1.0</span></li>
<li><span class="lang-en" lang="en"><a href="https://datatracker.ietf.org/doc/html/rfc2616" class="extiw external" title="rfc:2616">RFC 2616</a>, Hypertext Transfer Protocol -- HTTP/1.1</span></li>
<li><span class="lang-en" lang="en"><a href="https://datatracker.ietf.org/doc/html/rfc2617" class="extiw external" title="rfc:2617">RFC 2617</a> HTTP Authentification: Basic and Digest Access Authentification</span></li>
<li><span class="lang-en" lang="en"><a href="https://datatracker.ietf.org/doc/html/rfc7230" class="extiw external" title="rfc:7230">RFC 7230</a>, Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</span></li>
<li><span class="lang-en" lang="en"><a href="https://datatracker.ietf.org/doc/html/rfc7231" class="extiw external" title="rfc:7231">RFC 7231</a>, Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</span></li>
<li><span class="lang-en" lang="en"><a href="https://datatracker.ietf.org/doc/html/rfc7232" class="extiw external" title="rfc:7232">RFC 7232</a>, Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</span></li>
<li><span class="lang-en" lang="en"><a href="https://datatracker.ietf.org/doc/html/rfc7233" class="extiw external" title="rfc:7233">RFC 7233</a>, Hypertext Transfer Protocol (HTTP/1.1): Range Requests</span></li>
<li><span class="lang-en" lang="en"><a href="https://datatracker.ietf.org/doc/html/rfc7234" class="extiw external" title="rfc:7234">RFC 7234</a>, Hypertext Transfer Protocol (HTTP/1.1): Caching</span></li>
<li><span class="lang-en" lang="en"><a href="https://datatracker.ietf.org/doc/html/rfc7234" class="extiw external" title="rfc:7234">RFC 7234</a>, Hypertext Transfer Protocol (HTTP/1.1): Authentication</span></li>
<li><span class="lang-en" lang="en"><a href="https://datatracker.ietf.org/doc/html/rfc7538" class="extiw external" title="rfc:7538">RFC 7538</a>, The Hypertext Transfer Protocol Status Code 308 (Permanent Redirect)</span></li>
<li><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.w3.org/Protocols/rfc1945/rfc1945.txt">Hypertext Transfer Protocol 1.0</a> sur le site du W3C</li>
<li><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="https://hpbn.co/">High Performance Browser Networking</a>, Ilya Grigorik, 2013.</li></ul>
</div>
<div class="navbox-container" style="clear:both;">



</div>
<ul id="bandeau-portail" class="bandeau-portail"><li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail des réseaux informatiques</span> </span></li> <li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail de l’informatique</span> </span></li> <li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail des télécommunications</span> </span></li> <li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail d’Internet</span> </span></li> <li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail du Web sémantique</span> </span></li> </ul></div><!--htdig_noindex--><div><div class="zim-footer">
Cet article est issu de <a class="external text" title="Dernière modification le 2025-07-09" href="https://fr.wikipedia.org/wiki/?title=Hypertext_Transfer_Protocol&amp;oldid=227153874">Wikipédia</a>. Sauf mention contraire, le texte est disponible sous <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">Creative Commons Attribution-Share Alike 4.0</a>. Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>